/*
 * Copyright (C) 2021 Realtek Semiconductor Corp.
 * All Rights Reserved.
 *
 * This program is the proprietary software of Realtek Semiconductor
 * Corporation and/or its licensors, and only be used, duplicated,
 * modified or distributed under the authorized license from Realtek.
 *
 * ANY USE OF THE SOFTWARE OTHER THAN AS AUTHORIZED UNDER
 * THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
 *
 * Purpose : Definition of ME attribute: XG-PON TC performance monitoring history data (344)
 *
 * Feature : The file includes the following modules and sub-modules
 *           (1) ME attribute: XG-PON TC performance monitoring history data (344)
 */

#ifndef __MIB_XGPONTCPMHD_TABLE_H__
#define __MIB_XGPONTCPMHD_TABLE_H__

#ifdef __cplusplus
extern "C" {
#endif


/* Table XGPONT attribute index */
#define MIB_TABLE_XGPONTCPMHD_ATTR_NUM (16)
#define MIB_TABLE_XGPONTCPMHD_ENTITYID_INDEX ((MIB_ATTR_INDEX)1)
#define MIB_TABLE_XGPONTCPMHD_INTENDTIME_INDEX ((MIB_ATTR_INDEX)2)
#define MIB_TABLE_XGPONTCPMHD_THRESHOLDID_INDEX ((MIB_ATTR_INDEX)3)
#define MIB_TABLE_XGPONTCPMHD_PSBDHECERRCNT_INDEX ((MIB_ATTR_INDEX)4)
#define MIB_TABLE_XGPONTCPMHD_XGTCHECERRCNT_INDEX ((MIB_ATTR_INDEX)5)
#define MIB_TABLE_XGPONTCPMHD_UNKNOWNPROFILECNT_INDEX ((MIB_ATTR_INDEX)6)
#define MIB_TABLE_XGPONTCPMHD_TRANSXGPONENCMETHODFRAMES_INDEX ((MIB_ATTR_INDEX)7)
#define MIB_TABLE_XGPONTCPMHD_FRAGXGEMFRAMES_INDEX ((MIB_ATTR_INDEX)8)
#define MIB_TABLE_XGPONTCPMHD_XGEMHECLOSTWORDSCNT_INDEX ((MIB_ATTR_INDEX)9)
#define MIB_TABLE_XGPONTCPMHD_XGEMKEYERR_INDEX ((MIB_ATTR_INDEX)10)
#define MIB_TABLE_XGPONTCPMHD_XGEMHECERRCNT_INDEX ((MIB_ATTR_INDEX)11)
#define MIB_TABLE_XGPONTCPMHD_TRANSBYTESINNONIDELXGEMFRAMES_INDEX ((MIB_ATTR_INDEX)12)
#define MIB_TABLE_XGPONTCPMHD_RECVBYTESINNONIDELXGEMFRAMES_INDEX ((MIB_ATTR_INDEX)13)
#define MIB_TABLE_XGPONTCPMHD_LODSEVENTCNT_INDEX ((MIB_ATTR_INDEX)14)
#define MIB_TABLE_XGPONTCPMHD_LODSEVENTRESTOREDCNT_INDEX ((MIB_ATTR_INDEX)15)
#define MIB_TABLE_XGPONTCPMHD_ONUREACTIVATIONBYLODSEVENTS_INDEX ((MIB_ATTR_INDEX)16)


/* Table XG-PONTCPMHD attribute len, only string attrubutes have length definition */

// Table XG-PONTCPMHD entry structure
typedef struct {
	UINT16   EntityId;
	UINT8    IntEndTime;
	UINT16   ThresholdID;
	UINT32   PsbdHecErrCnt;
	UINT32   XgtcHecErrCnt;
	UINT32   UnknownProfileCnt;
	UINT32   TransXgponEncMethodXgemFrames;
	UINT32   FragmentXgemFrames;
	UINT32   XgemHecLostWordsCnt;
	UINT32   XgemKeyErrors;
	UINT32   XgemHecErrorCnt;
	UINT64   TransBytesInNonidleXGEMFrames;
	UINT64   RecvBytesInNonidleXGEMFrames;
	UINT32   LODSEventCnt;
	UINT32   LODSEventRestoredCnt;
	UINT32   OnuReactivationByLODSEvents;
} __attribute__((packed)) MIB_TABLE_XGPONTCPMHD_T;


#ifdef __cplusplus
}
#endif

#endif
